package com.zrx.govern.component.easyexcel.starter.feign.config;

import feign.Logger;
import feign.Request;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

import java.util.concurrent.TimeUnit;

/**
 * @author zhangxiaowei
 * @desc feignclient配置类
 */
public class FeignConfiguration {

    public static final int CONNECT_TIME_OUT_MILLIS = 5000;
    public static final int READ_TIME_OUT_MILLIS = 5000;

    /**
     * NONE：不记录任何日志信息，这是默认值。
     * BASIC：仅记录请求的方法，URL以及响应状态码和执行时间
     * HEADERS：在BASIC的基础上，额外记录了请求和响应的头信息
     * FULL：记录所有请求和响应的明细，包括头信息、请求体、元数据
     * @return: feign.Logger.Level
     * @author zhangxiaowei
     **/
    @Bean
    public Logger.Level feignLoggerLevel() {
        return Logger.Level.FULL;
    }

    /**
     * 全局读写超时配置
     */
    @Bean
    public Request.Options options() {
        return new Request.Options(CONNECT_TIME_OUT_MILLIS, TimeUnit.MILLISECONDS, READ_TIME_OUT_MILLIS, TimeUnit.MILLISECONDS, true);
    }

}
